As electronic devices, such as radio transceivers, decrease in size, but increase in complexity, to accommodate more features, the control circuitry of these transceivers becomes increasingly sophisticated. This need for more sophisticated radio control units has resulted in the use of microcomputers for controlling the operation of a radio. Conventionally, a number of radio control signals from the radio are interconnected by appropriate interface circuitry to the microcomputer. The number of external interconnections can be reduced by utilizing microcomputers, such as the Motorola M68HC11, which include some interface circuitry on the same integrated circuit as the microcomputer.
An example of an interfacing circuitry is a switch matrix adapter that monitors a plurality of digital inputs, in order to provide one digital output to the interrupt port of the microcomputer, whenever one of the digital switch inputs was present. However, each of the switched inputs still has to be read, in order to determine which one generated the interrupt.
Microprocessors are commonly provided with one or more ports for sensing an interrupt. Software is generally provided to process or handle interrupts whenever they occur. However, none of the prior art microcomputers can interrupt the microcomputer directly, based on an analog voltage, without using external hardware. The Motorola M68HC11, for example, lacks the capability to interrupt directly on an analog voltage that is coupled to an analog-to-digital (A/D) port, even though it allows the reading, or polling, of the A/D voltage level.
Radio control switch actuations, such as for push-to-transmit (PTT) or emergency, or any other non-digital amplitude changes are sometimes detected through a voltage level reading of the analog-to-digital port. A conventional voltage divider circuit associates a different voltage level with each of the switches multiplexed on the same line. The output of this voltage divider circuit is connected to the ND port to allow the identification of which switch was pressed by the specific voltage level read from the A/D port. However, the timing of this reading is controlled by the software and is usually done periodically, as in polling. This periodically polling, though, increases the processing time that the microcomputer has to be operating and results in high current drain.
However, when and how to trigger an interrupt, while saving current, is the problem to be solved. Sometimes, a switch closure or any other analog output, such as from a detector, or a filter, having a high priority, must be detected as soon as it occurs (that is, before the next polled reading). This high priority analog output is directly connected to the interrupt port for the software to interrupt as soon as the switch closure occurs. This type of interrupt-driven operation, is a more flexible approach than the polled method, previously described, because the microcomputer can be performing other tasks while waiting for a particular voltage level-triggered event.
However, the conventional interrupt port is a digital input. The digital input, on the microcomputer, cannot sense a change of state on the line if the input voltage level does not fall below or rise above a defined valid threshold voltage. To resolve this problem, additional interface circuitry is used to translate the voltage level of the analog output (whether it is from a single switch or another electronic device, or it is from the output of the voltage divider circuit) into a valid interrupt trigger digital level. However, if the voltage divider circuit was used, two input ports, the A/D and the interrupt ports, are wasted by having both connected to the interface circuitry for a hardwired interrupt. Furthermore, the interface circuitry adds additional components which take up space on an already crowded controller board.